#include <iostream>
#include <string>

using namespace std;

//设置所求点与圆心的类
class Point {
public:
    void setx(int a=0){
        cin>>a;
        x=a;
    }

    void sety(int a=0){
        cin>>a;
        y=a;
    }

    int getx(){
        return x;
    }

    int gety(){
        return y;
    }

private:
    int x;
    int y;
};

//圆类
class Circle {
public:
    // FIXME: `setR` is a better name，其他的函数也是类似的
    void setr(int a) {
        r=a;
    }

    int getr() {
        return r;
    }

    void setcenter(Point center){
        C_center=center;
    }

    Point getcenter(){
        return C_center;
    }

private:
    Point C_center;
    int r;
};

//判断函数
bool judge(Circle c,Point p){
    int d=(c.getcenter().getx()-p.getx())*(c.getcenter().getx()-p.getx())+(c.getcenter().gety()-p.gety())*(c.getcenter().gety()-p.gety());
    int R=(c.getr())*(c.getr());

    if(d>R) return true;
    else  return false;
}

int main()
{
    //创建圆
    Circle c;int R;
    cout<<"请输入圆的半径"<<endl;
    cin>>R;
    c.setr(R);

    Point center;
    cout<<"请输入圆心的横坐标"<<endl;
    center.setx();
    cout<<"请输入圆心的纵坐标"<<endl;
    center.sety();
    c.setcenter(center);

    //创建点
    Point p;
    cout<<"请输入这个点的横坐标"<<endl;
    p.setx();
    cout<<"请输入这个点的纵坐标"<<endl;
    p.sety();//判断关系
    if(judge(c,p)){cout<<"点在圆外"<<endl;}
    else{cout<<"点在圆内"<<endl;}

    return 0;
}

// FIXME:
//  1. 当然你目前写程序需要考虑的要素比较多，顾不了太多的东西。可以在写完之后在看看格式、命名等是不是可以做的更好。
//  2. 文件名，最好起一个有含义的名字，例如本程序可以是`PointCircle.cpp`等。
//  3. 进度可以再快一些，目前的这个程序应该是非常简单的，花不了太多时间。理论上按照你们的思维水平，可以一次多做几个这样的程序。
